JID
XMPP identifiers (JID) for JavaScript
JID type | local | @ | domain | / | resource | usage |
---|
domain | | | wonderland.net | | | servers and components |
bare | alice | @ | wonderland.net | | | users |
full | alice | @ | wonderland.net | / | rabbithole | user resource (device) |
https://en.wikipedia.org/wiki/XMPP#Decentralization_and_addressing
Install
npm install @xmpp/jid
or yarn add @xmpp/jid
Usage
var jid = require('@xmpp/jid')
var addr = jid('alice@wonderland.net/rabbithole')
var addr = jid('alice', 'wonderland.net', 'rabbithole')
addr instanceof jid.JID
var addr = jid('wonderland.net')
addr.local = 'alice'
addr.local
addr.setLocal('alice')
addr.getLocal()
addr.domain = 'wonderland.net'
addr.domain
addr.setDomain('wonderland.net')
addr.getDomain()
addr.resource = 'rabbithole'
addr.resource
addr.setResource('rabbithole')
addr.getResource()
addr.toString()
addr.bare()
addr.equals(some_jid)
jid.equal(addr, some_jid)
Escaping
The XEP-0106 defines a method to escape and unescape characters that aren't allowed in the local part of the JID. This library fully implement it.
const addr = jid('contact@example.net', 'xmpp.net')
addr.toString()
addr.toString(true)
For user input, use
jid('contact@example.net', 'xmpp.net')
jid('contact@example.net@xmpp.net')
References
Deprecated